import 'package:equatable/equatable.dart';
import 'package:backend.core/core/domain/entities/google_play/google_play_purchased_subscription_info_cancellation_survey_result.dart';

abstract class GooglePlayPurchasedSubscriptionInfoCancellationInfo {}

class GooglePlayPurchasedSubscriptionInfoUserCancellationInfo extends Equatable
    implements GooglePlayPurchasedSubscriptionInfoCancellationInfo {
  const GooglePlayPurchasedSubscriptionInfoUserCancellationInfo({
    required this.time,
    required this.surveyResult,
  });

  final DateTime time;
  final GooglePlayPurchasedSubscriptionInfoCancellationSurveyResult surveyResult;

  @override
  List<Object?> get props {
    return [
      time,
      surveyResult,
    ];
  }
}

class GooglePlayPurchasedSubscriptionInfoSystemCancellationInfo extends Equatable
    implements GooglePlayPurchasedSubscriptionInfoCancellationInfo {
  const GooglePlayPurchasedSubscriptionInfoSystemCancellationInfo();

  @override
  List<Object?> get props => [];
}

class GooglePlayPurchasedSubscriptionInfoDeveloperCancellationInfo extends Equatable
    implements GooglePlayPurchasedSubscriptionInfoCancellationInfo {
  const GooglePlayPurchasedSubscriptionInfoDeveloperCancellationInfo();

  @override
  List<Object?> get props => [];
}

class GooglePlayPurchasedSubscriptionInfoNewSubscriptionCancellationInfo extends Equatable
    implements GooglePlayPurchasedSubscriptionInfoCancellationInfo {
  const GooglePlayPurchasedSubscriptionInfoNewSubscriptionCancellationInfo();

  @override
  List<Object?> get props => [];
}
